From: Florian Müllner Date: Wed, 1 Sep 2021 18:37:13 +0000 (+0200) Subject: boxpointer: Fix positioning with non-widget sources X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~574^2^2~38 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=0fd205ce54ccae0129cb2f3a4f8f92d842fe0d51;p=gnome-shell.git boxpointer: Fix positioning with non-widget sources Commit 16d371873 lifted the requirement for source actors to be widgets, then got it wrong :rolling_eyes: The content box is expected to be in actor coordinates, so the allocation must be translated to (0, 0). https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4593 Part-of: --- diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js index c7a8f92d0..be9c57ce0 100644 --- a/js/ui/boxpointer.js +++ b/js/ui/boxpointer.js @@ -467,7 +467,10 @@ var BoxPointer = GObject.registerClass({ const sourceAllocation = sourceActor.get_allocation_box(); const sourceContentBox = sourceActor instanceof St.Widget ? sourceActor.get_theme_node().get_content_box(sourceAllocation) - : sourceAllocation; + : new Clutter.ActorBox({ + x2: sourceAllocation.get_width(), + y2: sourceAllocation.get_height(), + }); let sourceTopLeft = this._sourceExtents.get_top_left(); let sourceBottomRight = this._sourceExtents.get_bottom_right(); let sourceCenterX = sourceTopLeft.x + sourceContentBox.x1 + (sourceContentBox.x2 - sourceContentBox.x1) * this._sourceAlignment;